博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
登录之后更新导航
阅读量:4677 次
发布时间:2019-06-09

本文共 3484 字,大约阅读时间需要 11 分钟。

  1. 用上下文处理器app_context_processor定义函数
    1. 获取session中保存的值
    2. 返回字典
  2. 在父模板中更新导航,插入登录状态判断代码。
    1. 注意用{% ... %}表示指令。
    2. {
      { }}表示变量
  3. 完成注销功能。
    1. 清除session
    2. 跳转

index.py

import configfrom flask import Flask, render_template, url_for, redirect, request,sessionfrom flask_sqlalchemy import SQLAlchemyapp = Flask(__name__)app.config.from_object(config)db = SQLAlchemy(app)class User(db.Model):    __tablename__ = 'user'    id = db.Column(db.Integer, primary_key=True, autoincrement=True)    username = db.Column(db.String(20), nullable=False)    password = db.Column(db.String(20), nullable=False)    nickname = db.Column(db.String(20))db.create_all()@app.route('/')def shouye():    return render_template('text.html')@app.route('/zhuce',methods=['GET','POST'])def zhuce():    if request.method == 'GET':        return render_template('zhuce.html')    else:        username = request.form.get('username')        password = request.form.get('password')        nickname = request.form.get('nickname')        user1 = User.query.filter(User.username == username).first()    if user1:        return 'username existed'    else:        user1 = User(username=username, password=password, nickname=nickname)        db.session.add(user1)        db.session.commit()        return redirect(url_for('denglu'))@app.route('/denglu',methods=['GET','POST'])def denglu():    if request.method == 'GET':        return render_template('denglu.html')    else:        username = request.form.get('username')        password = request.form.get('password')        user=User.query.filter(User.username == username).first()    if user:        if user.password == password:            session['user'] = username            session.permanent = True            return redirect(url_for('shouye'))        else:            return 'password error'    else:        return 'username is not existed'@app.route('/logout/')def logout():    session.clear()    return redirect(url_for('shouye'))@app.route('/neirong')def fankui():    return render_template('fankui.html')@app.context_processordef mycontext():    usern=session.get('user')    if usern:        return {
'username':usern} else: return {}if __name__ == '__main__': app.run(debug='True')

denglu.html

    {% extends "text.html" %}    
登陆
{% block js %} {% endblock %}{% block denglu %}
wgd

用户登录

 

 

{% endblock %}

父模板text.hrml

    
Title
{% block js %}{% endblock %}
{% block denglu %}{% endblock %}{% block zhuce %}{% endblock %}{% block fankui %}{% endblock %}

shouye.html

    {% extends "text.html" %}    
首页 {% block shouye %}{% endblock %}

实验截图

 

 

转载于:https://www.cnblogs.com/wgd0069/p/7889861.html

你可能感兴趣的文章
非空 默认 男 mysql_MySQL进阶13--常见六大约束: 非空/默认/主键/唯一约束/检查约束/外键约束--表级约束 / 列级约束...
查看>>
mysql错误修改数据_mysql数据修改问题
查看>>
navicat忘记mysql密码_navicat连接My SQL时忘记root密码处理方法
查看>>
mysql 左连接 左外连接吗_什么是左外连接?左外连接在工作表查询中的应用
查看>>
python sum函数导入list_python sum函数iterable参数为二维list,start参数为“[]”该如何理解...
查看>>
docker 删除多余镜像_多余Basedisk删除和vDisk镜像反转技术简介
查看>>
mysqlin会使用索引吗_被面试官虐了,索引为何使用B+树,你知道吗
查看>>
mysql8单节点500m_Kubernetes 部署 Mysql 8.0 数据库(单节点)
查看>>
mysql数据工厂生产_MySQL超时与天蓝色数据工厂副本
查看>>
python缩进可以用在任何语句之后_每天一道Python选择题--python缩进
查看>>
mysql查询左边大于左边_MySQL WHERE 子句
查看>>
java 获取颜色_java关于照片属性的获取,颜色模式
查看>>
session丢失原因 java_session没有过期,其保存的数据无故丢失的原因
查看>>
java pkcs 11 write_java pkcs#11读取证书加解密(初学-分享)
查看>>
tranisant java_java tranisant
查看>>
java ibatis 存储过程_ibatis 调用存储过程
查看>>
java中的softreference_Java语言中内存优化的SoftReference 和 WeakReference的对比分析
查看>>
java提供了丰富的类库_Java优势有哪些?
查看>>
java 过滤器权限控制_JAVA过滤器,实现登陆权限限制
查看>>
设计模式java 模板模式_java设计模式--模板方法模式
查看>>